package com.ea.mapper;

import com.ea.domain.dto.UserUpdateDTO;
import com.ea.domain.entity.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 用户信息表 Mapper 接口
 * </p>
 *
 * @author 电器商城
 * @since 2022-11-29
 */
@Mapper
public interface UserInfoMapper   {

    /**
     * 根据账号查找用户信息
     * @param loginAccount loginAccount
     * @return UserInfo
     */
    UserInfo selectUserInfoByLoginAccount(@Param(value = "loginAccount") String loginAccount);

    /**
     * 根据userId查找用户信息
     * @param userId
     * @return
     */
    UserInfo selectUserByUserId(@Param(value = "userId") Long userId);

    /**
     * 查找账号数量
     * @param loginAccount
     * @return
     */
    Integer selectCountByLoginAccount(String loginAccount);

    /**
     * 查找手机号已注册数量
     * @param phone
     * @return
     */
    Integer selectPhoneCount(String phone);

    /**
     * 添加用户信息
     * @param userInfo
     */
    void insertUserInfo(UserInfo userInfo);

    /**
     * 注销用户
     * @param userId
     * @param statusCode
     */
    void updateUserInfoStatus(@Param(value = "userId") Long userId, @Param(value = "statusCode")Integer statusCode);

    /**
     * 修改用户信息
     * @param updateDTO
     */
    void updateUserInfo(UserUpdateDTO updateDTO);

    /**
     * 修改密码
     * @param userId
     * @param newPassword
     */
    void updatePassWord(Long userId, @Param(value = "newPassword") String newPassword);
}
